// const { error } = require("jquery");
import requestAPI from '../../utils/requestApi'
Page({
  data: {
    scenicDetail: [
      {
        id: 123123,
        backgroundImage: '../../static/countryDetail/top.jpg',
        scenic: {
          name: '辉煌大厦',
          location: '江西省萍乡市湘东区辉煌大厦',
          latitude:27.632451000000007, // 纬度
          longitude:113.73707999999999, // 经度
          stars: 4,
          status: false,
          openingHours: '周一至周日 00:00 - 24:00',
          introduction: '  湘东区，隶属江西省萍乡市，西与湖南省醴陵市交界，西南与湖南省攸县交界。湘东区地处赣湘边界，是江西的西大门，素有“赣西门户”、“吴楚通衢”之称，面积858.76平方千米。湘东区境内有碧湖潭国家森林公园，有红豆杉、檀树、银杏等珍贵树木，有煤炭、石灰石、铁矿、粘土矿等储量多品质高的矿产资源。截至2023年末，湘东区常住人口30.41万人，总人口性别比107.30，常住人口城镇化率67.29%。 [18]截至2024年4月，湘东区辖1个街道、8个镇、2个乡'
          
        },
        imageSections: [
          { id: 1, src: 'https://img520.com/LhARfk.jpg' },
          { id: 2, src: '../../static/countryDetail/scenic02.jpg' },
          { id: 3, src: '../../static/countryDetail/scenic03.jpg' },
          { id: 4, src: '../../static/countryDetail/scenic03.jpg' },
        ],
        isFavorite: false // 假设初始状态不是收藏的
      }
    ],
    // header:{ openid: wx.getStorageSync('openid') }
  },

  // 点击导航逻辑
  navigateToLocation: function() {
    const { latitude, longitude, name, location } = this.data.scenicDetail[0].scenic;

    wx.openLocation({
      latitude: latitude,
      longitude: longitude,
      address: location,
      name: name,
      success() {
        console.log('导航成功');
        console.log(latitude,longitude,name,location);
      },
      fail() {
        console.error('导航失败');
      }
    });
  },

  // 图片放大浏览
  onImageTap: function(e) {
    const currentSrc = e.currentTarget.dataset.src; // 获取当前点击的图片的src
    const index = e.currentTarget.dataset.index; // 获取当前点击图片的索引
    const scenicDetail = this.data.scenicDetail[0]; // 获取当前scenicDetail对象
    if (scenicDetail && Array.isArray(scenicDetail.imageSections)) {
      const images = scenicDetail.imageSections; // 获取当前section的所有图片对象
      const urls = images.map(img => img.src); // 将图片对象映射成src数组

      // 调用预览大图API
      wx.previewImage({
        current: currentSrc, // 当前显示图片的http链接，根据点击的图片设置
        urls: urls // 需要预览的图片http链接列表
      });
    } else {
      console.error('Image sections is undefined or not an array');
    }
  },

// 切换收藏状态并显示提示
toggleFavorite: function(event) {
  const that = this;
  const userKey = wx.getStorageSync('userKey'); // 从本地存储获取userKey
  const scenicDetail = this.data.scenicDetail[0];
  const isFavorite = !scenicDetail.isFavorite;

  if (!userKey) {
    wx.showToast({
      title: '请先登录',
      icon: 'none',
      duration: 2000
    });
    return;
  }

  // 更新本地收藏状态
  scenicDetail.isFavorite = isFavorite;
  this.setData({
    scenicDetail: [scenicDetail] // 确保更新的是数组形式，以匹配this.data.scenicDetail的结构
  });

  // 显示提示
  wx.showToast({
    title: isFavorite ? '收藏成功' : '取消收藏',
    icon: isFavorite ? 'success' : 'none',
    duration: 2000
  });

  // 根据收藏状态决定发送请求的URL
  const relativeUrl = isFavorite ? '/travel/favorite/add' : '/travel/favorite/remove';
  const data = {
    userKey: userKey,
    type: 'scenic',
    itemId: scenicDetail.id
  };

  // const header = { userKey: wx.getStorageSync('userKey') };
  console.log(data);
  // 发送POST请求更新收藏状态，这里没给 header 信息
  requestAPI.post(relativeUrl, data, { openid: userKey }).then(res => {
    console.log(res);
    if (res.code === 200) {
      console.log('收藏状态更新成功');
       // 通知收藏页面刷新数据
       wx.setStorageSync('refreshFavorites', true);
    }
  }).catch(error => {
    console.error('更新收藏状态失败:', error);
  });
},
  
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    // 获取页面参数中的id
    const id = options.id;
    // 使用id发起请求
    this.fetchScenicDetail(id);
  },
// 添加到历史记录的函数
addHistoryRecord: function(id, name, images, userKey, type, itemId) {
  const postData = {
    userKey: userKey,
    name: name,
    images: images[0],
    type: type,
    itemId: itemId
  };

  // 使用requestAPI.post发送POST请求
  requestAPI.post('/travel/history/add', postData, { openid: userKey }).then(response => {
    if (response.code === 200) {
      console.log('历史记录添加成功');
    } else {
      console.error('历史记录添加失败:', response.message);
    }
  }).catch(error => {
    console.error('请求失败:', error);
  });
},
 // 发起请求获取景区详情
fetchScenicDetail: function(id) {
  const that = this;
  const userKey = wx.getStorageSync('userKey') || 'default_userKey';
  const relativeUrl = '/travel/scenic/detail';  // 使用相对路径
  const url = `?userKey=${userKey}&id=${id}`;  // 将userKey和id拼接在URL中
  requestAPI.get(relativeUrl + url).then(res => {
    console.log(res);
    if (res.code === 200 && res.data && res.data.scenicDetail && res.data.scenicDetail.length > 0) {
      // 处理返回的数据
      const scenicDetailData = res.data.scenicDetail.map(item => ({
        id: item.id,
        backgroundImage: item.backgroundImage,
        scenic: {
          name: item.scenic.name,
          location: item.scenic.location,
          latitude: item.scenic.latitude,
          longitude: item.scenic.longitude,
          stars: item.scenic.stars,
          status: item.scenic.status,
          openingHours: item.scenic.openingHours,
          introduction: item.scenic.description, 
        },
        imageSections: item.imageSections.map(img => ({
          src: img.src,
          id: img.id,
        })),
        isFavorite: item.isFavorite, // 假设初始状态不是收藏的
      }));
      
      // 更新scenicDetail数据
      that.setData({
        scenicDetail: scenicDetailData,
      });
    // 调用添加历史记录的函数
    const name = scenicDetailData[0].scenic.name;
    const images = scenicDetailData[0].imageSections.map(img => img.src);
    const type = 'scenic';
    const itemId = id; 
    that.addHistoryRecord(id, name, images, userKey, type, itemId);

    }
  }).catch(error => {
    console.error('请求景区详情数据失败:', error);
  });
},
});
